﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Windows.Forms;
using System.Drawing;
using System.Text.RegularExpressions;
using System.Data.SqlClient;

namespace FrbaCommerce
{
    public class Telefono
    {
        public string id { get; set; }
        public string cod_pais { get; set; }
        public string cod_area { get; set; }
        public string numero { get; set; }

        public bool Guardar(Telefono telefono) 
        {
            bool resul = false;
            ConexionSql conexion = new ConexionSql();
            DataSet datos = new DataSet();
            string query = " SELECT COUNT(*) FROM ASDF.Telefono WHERE numero = '" + telefono.numero + "'";
            datos = conexion.ejecutarConsulta(query);
            DataRow fila = datos.Tables[0].Rows[0];
            if (Convert.ToInt16(fila.ItemArray[0].ToString()) == 0)
            {
                query = " INSERT INTO ASDF.Telefono VALUES ('" + telefono.cod_pais + "', '" + telefono.cod_area + "' , " + telefono.numero + " )";
                conexion.ejecutarConsulta(query);
                query = " SELECT id FROM ASDF.Telefono WHERE numero = '" + telefono.numero + "'" ;
                datos = conexion.ejecutarConsulta(query);
                fila = datos.Tables[0].Rows[0];
                telefono.id = fila.ItemArray[0].ToString();
                resul = true;
            }
            else
            {
                query = " SELECT id FROM ASDF.Telefono WHERE numero = '" + telefono.numero + "'";
                datos = conexion.ejecutarConsulta(query);
                fila = datos.Tables[0].Rows[0];
                telefono.id = fila.ItemArray[0].ToString();
                query = " SELECT COUNT(*) FROM ASDF.Cliente WHERE id = " + telefono.id;
                datos = conexion.ejecutarConsulta(query);
                fila = datos.Tables[0].Rows[0];
                if (Convert.ToInt16(fila.ItemArray[0].ToString()) > 0)
                {
                    resul = false;
                }
                else
                {
                    telefono.Modificar(telefono);
                    resul = true;
                }   
            }
            return resul;        
        }

        public void Modificar(Telefono tel)
        {
            ConexionSql conexion = new ConexionSql();
            DataSet datos = new DataSet();
            string query = " UPDATE ASDF.Telefono SET ";
            query += " cod_pais = '" + tel.cod_pais + "' , cod_area= '" + tel.cod_area + "', numero = '" + tel.numero + "' WHERE id = " + tel.id ;
            conexion.ejecutarConsulta(query);
        }

        public Telefono obtenerId(string  numero) 
        {            
            ConexionSql conexion = new ConexionSql();
            DataSet datos = new DataSet();
            string query = " SELECT * FROM ASDF.Telefono WHERE numero = '" + numero + "'";
            datos = conexion.ejecutarConsulta(query);
            DataRow fila = datos.Tables[0].Rows[0];
            Telefono telefono = cargarTelefono(fila);
            return telefono;            
        }

        public Telefono buscarPorId(string  id)
        {
            ConexionSql conexion = new ConexionSql();
            DataSet datos = new DataSet();
            string query = " SELECT * FROM ASDF.Telefono WHERE id = " + id;
            datos = conexion.ejecutarConsulta(query);
            DataRow fila = datos.Tables[0].Rows[0];
            Telefono telefono = cargarTelefono(fila);
            return telefono;

        }

        public bool VerificarTelefono(string numero)
        {
            ConexionSql conexion = new ConexionSql();
            DataSet datos = new DataSet();
            string query = " SELECT COUNT(*) FROM ASDF.Telefono WHERE numero = '" + numero+ "'";
            datos = conexion.ejecutarConsulta(query);
            DataRow fila = datos.Tables[0].Rows[0];
            if (Convert.ToInt32(fila.ItemArray[0].ToString()) == 0)            
                return true;            
            else
                return false;            
        }

        private Telefono cargarTelefono(DataRow fila) 
        {
            Telefono telefono = new Telefono();
            telefono.id = fila.ItemArray[0].ToString();
            telefono.cod_pais = fila.ItemArray[1].ToString();
            telefono.cod_area = fila.ItemArray[2].ToString();
            telefono.numero = fila.ItemArray[3].ToString();
            return telefono;
        }
    }
}
